home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Collection of Tools & Utilities
/
Collection of Tools and Utilities.iso
/
sound
/
rukc1d.zip
/
R2_DEMOS.ZIP
/
MIDIM020.ZIP
/
MM020.DOC
< prev
next >
Wrap
Text File
|
1994-02-27
|
22KB
|
471 lines
MIDI-MASTER(TM) v0.20ß, General MIDI File Player, 27-Feb-94
Copyright (C)1994 Cornel Huth - All Rights Reserved.
Actual Limitations:
- MM.EXE is a beta release (0.20) MIDI player and, at this level, is only
a test-bed for the GUS (Advanced Gravis UltraSound) and OPL2/3 support
code of Ruckus.
The following relates to the GUS section of MM:
- Interactive volume changes should be made gradually.
- AM vibrato not 100% accurate (awaiting full specs before moving on).
- FM vibrato has no specs to follow (awaiting full specs, but pretty close).
- Does not operate in a Windows DOS box if the GUS Windows device driver
has been installed. Altering the ULTRASND= IRQ/DMA may work, but it is not
recommended. The normal result is a DMA timeout error.
- Not all MIDI-performance events are currently supported (too many to list,
either way, but will be in later versions).
- Programmer's inability to recall all actual limitations.
- MIDI files > 64K not reliable. Results vary. Not recommended.
- Notes sticking occasionally. Reducing voices (/X) may help (for now).
- Device patch filenames are statically stored.
- Single waveform size is limited to approximately 256K.
- Single patch size is limited to approximately 256K.
The OPL section has further limitations due to time constraints in getting
this release out by the end of February 1994. Much of what follows is
specifically for the GUS, since the GUS code took 6 months; the OPL code
took about 1 month (so far).
Actual Features:
- Command-line and interactive control of volume, volume response type,
AM (command-line only) & FM vibrato effects, overall balance, clock
(elapsed/time remaining), tempo (-50% to +200%), and screen display
(interactive only).
- Displayed info includes current MIDI state and hardware state.
- Selectable timer (on-board, PC timer-0, alt).
- DMA transfer rate is calculated.
- Both normal and low-rez patch loading (16- or 8-bit form).
- Device memory-use & number of allocations detailed.
- Single waveform size of approximately 256K.
- Single patch size of approximately 256K.
- Failsafe aborts around possible problem areas (both int 3 and int 0 --
int 3 are not trapped (use DEBUG with breakpoints on) but all int 0
are handled (either a real div/0, overflow, or a failsafe trap).
A state-dump is shown on all failsafe traps and the system restored
to a stable state.
- Automatic detection and handling of Windows dual-sequenced MIDI files
with option to override.
- Lots of command-line options to select play state, including MIDI channels,
MIDI events, pitchbend range, volume, volume response type, device memory
reserve, default patch select, active voices, and a few more.
For the OPL section:
- Almost no events are performed by the OPL driver (basically null events).
Fast Tips:
Use the batch files included for simple runs.
Read this entire document (has to be faster reading it than it was writing it).
Use /L0 for log-response MIDI files (default is linear volume response).
Use General MIDI L1-sequenced files for best results.
Use /Q1 if you have 256K GRAM.
Use /F1 to activate failsafe traps (defaults to off).
Avoid switching log/linear response when playing.
Avoid very low volume levels.
Do not use AM vibrato (/o2 or /o3).
Do not use MM from the Windows DOS box with the GUS drivers installed.
Let me know of any serious problems. Provide lots of details.
Mail:
E-mail address, BBS support info, and the error list is at the end of this
document.
----------------------------------------------------------------------------
MIDI-MASTER(TM) was developed using the Ruckus Toolkit. This toolkit will be
made available on the support BBS in the Ruckus developer's conference in
beta form soon. Shareware versions at the usual locations, but release will
come months away from the initial beta versions.
This program contains the generic MIDI parser and the static LIB version
of the GUS support code. The parser has some of the controller support and
on hold. Full GM-performance support will be available by release.
Back to this program. Here's what you need (GUS):
1. 286 or higher CPU - the GUS support code was written using
a few 286 instructions that made a world of difference.
Only high-end cards will have 286+ code. The AdLibs, OPL2s,
will run just fine with an 8088. 1MB of GRAM probably is
a good idea. Patches are loaded in native form (16-bit,
full sample), unless the command-line override option is used.
For the OPL section:
1a. The patch data in R2OPL2OP.PAT and R2OPL4OP.PAT must be in the
current directory. There are several out-of-whack patches in
them, but these can/will be improved when the patch editor
becomes available. The 4op patches sound pretty good. It's
best to use /m6 (all 4op voices) if you use any 4op voices at all.
Note: For a quick list of the available command-line options, start up
the program with a single ? parameter.
2. The following environment variables must be set:
ULTRASND=260,7,7,11,11
ULTRADIR=F:\SND\_GUS
rem PATDIR=F:\SND\_GUS\MIDI (not needed now)
rem DLXDIR=F:\PRG\ASM\R2\_DLX (not needed now)
In other words, set the ULTRASND= eVar to something that
works for your system. The above is my setting. the ULTRADIR=
eVar is the location of the GUS directory. In this directory
must be the patch file directory, MIDI. Patch files must be
the current version (patch version 1.10). The old patch files
may not work (probably won't). Anyway, everyone should have
their GUS 2.06 disks by now. The new patches are on these disks
(5.5MB worth!).
For the OPL section:
2a. No special requirements currently.
----------------------------------------------------------------------------
That's it. Basically, all you have to do is give it a filename.ext. But you
do have these command-line options available:
C>mm midifile.ext [/B /C /D /E /F /L /M /O /P /Q /R /T /V /W /X /Y /Z]
midifile.ext can be any valid DOS pathname to a valid MIDI file
sequenced for General MIDI. Alternate sequencer-support later.
Esc at any time exits to DOS.
/Bn=0 or baseport (e.g., 388 for PAS-OPLs, 2x0 for SB-OPLs, not for GUS)
/Cn=0 to FFFFh, default channel mask=FFFFh (all MIDI channels on)(see /Wn)
/Dn=2,3,5; no default device - must be specified (2=OPL2, 3=OPL3, 5=GUS)
/En=0 to 7F00h, default event mask=7F00h (all MIDI events on)
/Ln=0 or 1, default volume response=1 linear, 0=log
/Mn=0 to x, default device mode=0 (for OPLs x=number of 4op voices (0-6))
/On=0 to 3, default LFOs off=0 (1=FMvib, 2=AMvib, 3=both)
/Pn=0 to 15, default drum channel=9 (0=no drums)(channels are 0-based)
/Qn=0 or 1, default patch quality mode=0 (max), 1=min
/Rn=-768 to 1023, default reserve=0 (neg for topdown reserve) [GUS]
/Tn=0 to 2, default timer=0 PC 8253 timer0, 1=on-board timer, [2=RTC]
/Vn=0 to 100, default music volume=50 linear & 90 log
/Wn=0 to 2 default=2 WDS extended-level, 1=base-level, 0=no WDS adjust
/Xn=14 to 32, default voices=32 [GUS]
/Yn=0 to 2, default=0, enforce CPU check (1=do not enforce, 2=bypass test)
/Zn=0 to 127, default program=0 (AcPiano), 999 for none
Details on Command-Line Options (most):
/B - base port
On the OPL devices you need to specify a base port. For 2op voices
388 (for 388hex) will just about always work. For 4op voices, 388
will work for most OPL3s (such as the PAS-16), but Sound Blasters
require you to use the SBx's base port (220, 240, etc.).
/C - channel mask/selector
/C is to override the default channels selected. You can
enter either a hex, binary, or if you can figure it out,
decimal number here. Hex values must be followed with an "h",
and binary either a "b" or "y". For example:
/C3FFh channels 0-9
/C3F0h channels 4-9
/C111b channels 0-2
/CFFFFh 0-15 (all